const API = require('../http/api')

//检测微信登录状态
function checkWxSession() {

  return new Promise((resolve, reject) => {

    wx.checkSession({
      success: () => {
        resolve(true)
      },
      fail: () => {
        resolve(false)
      }
    })

  })

}




//检测用户是否登录
async function checkHasedLogined() {

  //1.查看本地是否有token

  //获取本地token
  const token = wx.getStorageSync('token')

  if (!token) {
    return false
  }
  //2.如果本地有token，检测token是否有效，与后台登录状态进行比对

  //思路：将上面获取的token通过一个检测token是否效的接口来检测
  const isValid = await API.checkTokenApi(token)
  if (isValid !== 0) {
    //如果本地token无效，则删除本地token
    wx.removeStorageSync('token')

    //返回false
    return false
  }

  //3.检测用户微信的登录状态
  const isOk = await checkWxSession()
  if (!isOk) {
    //如果微信登录过期，删除本地token
    wx.removeStorageSync('token')

    //返回false
    return false
  }



  return true


}

//用户自动登录注册方法
function authorize() {

  return new Promise((resolve, rejct) => {

    //通过wx.login中的code码来换取token
    wx.login({
      async success(res) {
        console.log('wx.login:', res)
        //将code码通过调用公司后台接口，来拿到token
        const result = await API.autoAuthorize(res.code)
        console.log('token和其他信息：', result)

        if (result.code === 0) {
          //将token和uid保存到本地，方便其他业务接口调接口时携带
          wx.setStorageSync('token', result.data.token)
          wx.setStorageSync('uid', result.data.uid)
          resolve()

        }
      }
    })
  })
}

function tabbarBadge() {
  wx.setTabBarBadge({
    index: 3,
    text: '99+',
  })
}
module.exports = {
  checkHasedLogined,
  authorize,
  tabbarBadge
}